/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.config.service;

import com.icinfo.cloud.provider.punish.config.dto.ConfigFastProcedureDto;
import com.icinfo.cloud.provider.punish.config.vo.ClaimOrgVo;
import com.icinfo.cloud.provider.punish.config.vo.ConfigFastProcedureDocumentInfoVo;
import com.icinfo.cloud.provider.punish.config.vo.ConfigFastProcedureVo;
import com.icinfo.cloud.provider.punish.config.vo.PunishmentMattersVo;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述: 速结程序配置表 config_fast_procedure 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年12月05日
 */
public interface IConfigFastProcedureService extends BaseService {
    /**
     * 获取速结程序列表
     * @param dto
     * @return
     */
    List<ConfigFastProcedureVo> fastProcedureList(ConfigFastProcedureDto dto);

    /**
     * 新增速结程序
     * @param dto
     * @return
     */
    Integer saveFastProcedure(ConfigFastProcedureDto dto);

    /**
     * 修改速结程序
     * @param dto
     * @return
     */
    Integer updateFastProcedure(ConfigFastProcedureDto dto);

    /**
     * 删除速结程序（逻辑删除）
     * @param dto
     * @return
     */
    Integer deleteFastProcedure(ConfigFastProcedureDto dto);

    /**
     * 获取速结程序详情
     * @param dto
     * @return
     */
    ConfigFastProcedureVo getFastProcedureDetail(ConfigFastProcedureDto dto);

    /**
     * 获取处罚事项
     * @param areaCode
     * @return
     */
    List<PunishmentMattersVo> getPunishmentMatters(String areaCode,String listName);

    /**
     * 获取认领部门信息
     * @param areaCode
     * @param orgName
     * @return
     */
    List<ClaimOrgVo> getClaimOrg(String areaCode, String orgName);

    /**
     * 根据处罚事项code查询文书模板
     * @param orgCode
     * @param listCode
     * @return
     */
    ConfigFastProcedureVo getTemplateByListCode(String orgCode, String listCode);

    /**
     * 根据部门code查询速结程序适用的处罚事项
     *
     * @author yangsizhen
     * @date 2022/12/28
     * @param orgCode 部门code
     * @return com.icinfo.framework.common.web.Result<com.icinfo.cloud.provider.punish.config.vo.ConfigFastProcedureVo>
     */
    List<ConfigFastProcedureVo> getListByOrgCode(String orgCode);

    /**
     * 根据listCode查询其个数
     * @param orgCode
     * @param listCode
     * @return
     */
    int getFastProcedureNumByListCodeAndOrgCode(String orgCode, String listCode);

    /**
     * 描述:根据部门code、适用的处罚事项、caseId查询文书信息
     *
     * @param orgCode  组织代码
     * @param listCode 代码列表
     * @param caseId   用例id
     * @return {@link List<ConfigFastProcedureDocumentInfoVo> }
     * @author shishengyao
     * @date 2023/04/23
     */
    List<ConfigFastProcedureDocumentInfoVo> getDocumentTemplateByListCode(String orgCode, String listCode,String caseId);
}
